/** cvu-spin 局部加载
    @param { String } theme 主题风格，默认default
    @param { String } icon 图标type属性值，theme为icon时生效
    @param { String } background 背景色，默认rgba(255,255,255, .6)
    @param { String } color 文字颜色， 默认#0382D9
    @param { NUmber } zIndex 层级，默认9999
    @param { String } content 提示文字，默认 '加载中，请耐心等待'
 */
import Spin from './src/spin'
import common from '../../until/common'

let spinInstance
let propsDefault = {
    // 主题
    theme: 'default',
    // icon图标
    icon: 'ios-loading',
    // 背景色
    background: null,
    // 文字颜色
    color: null,
    // 层级
    zIndex: null,
    // 提示文字
    content: '加载中，请耐心等待'
}
let props = common.deepCopy(propsDefault)
let timer

const getSpinInstance = () => {
    spinInstance = spinInstance || Spin.instance(props)
    return spinInstance
}

const update = options => {
    let instance = getSpinInstance()
    instance.update(options)
}

// 全局配置
Spin.config = (options) => {
    props = common.extend(props, options, true)
}

// 全局销毁
Spin.destroy = () => {
    let instance = getSpinInstance()
    spinInstance = null
    props = common.deepCopy(propsDefault)
    instance.destroy()
}

// 显示
Spin.show = () => {
    update({ show: true })
}

// 结束进度条，自动补全剩余进度
Spin.hide = () => {
    update({ show: false })
}

Spin.install = function(Vue) {
    Vue.component(Spin.name, Spin)
}

export default Spin